Update to DotNetWorkQueue 0.9.43; use AesMessageInterceptor#3
Conversation
- Bump DotNetWorkQueue packages 0.9.38 -> 0.9.43. - Injectors: replace the deprecated TripleDesMessageInterceptor with AesMessageInterceptor (AES-256-GCM; 32-byte key, no IV). - Align transitive deps required by 0.9.43: Microsoft.Extensions.* 10.0.8 -> 10.0.9, OpenTelemetry* 1.15.3 -> 1.16.0, StackExchange.Redis 2.13.17 -> 3.0.7. All sample solutions build clean against 0.9.43. Closes #2 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughThis PR bumps NuGet package versions (DotNetWorkQueue 0.9.38→0.9.43, Microsoft.Extensions.* 10.0.8→10.0.9, OpenTelemetry 1.15.3→1.16.0, StackExchange.Redis 2.13.17→3.0.7, Dashboard.Client) across all sample .csproj files, and replaces TripleDES with AES-based message encryption in SampleShared/Injectors.cs. ChangesSample project dependency bumps
AES encryption migration
Estimated code review effort: 2 (Simple) | ~12 minutes Sequence Diagram(s)sequenceDiagram
participant Sample
participant AddMessageInterceptors
participant Container
Sample->>AddMessageInterceptors: configure encryption + gzip options
AddMessageInterceptors->>Container: register GZipMessageInterceptor (if gzip enabled)
AddMessageInterceptors->>Container: register AesMessageInterceptor
AddMessageInterceptors->>Container: register AesMessageInterceptorConfiguration singleton (32-byte key)
Related Issues: Closes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
Source/Samples/SampleShared/Injectors.cs (1)
72-81: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueHoist duplicated
AesMessageInterceptorConfigurationconstruction.
new AesMessageInterceptorConfiguration(key)is built identically in both branches; sincekeyis already computed once above theif, this can be created a single time and reused.♻️ Proposed de-duplication
byte[] key = System.Text.Encoding.ASCII.GetBytes("0123456789abcdef0123456789abcdef"); + var aesConfiguration = new AesMessageInterceptorConfiguration(key); if (encryption && gzip) { - var aesConfiguration = new AesMessageInterceptorConfiguration(key); container.RegisterCollection<IMessageInterceptor>(new[] { typeof (GZipMessageInterceptor), //gzip compression typeof (AesMessageInterceptor) //encryption (AES-256-GCM) }); container.Register(() => aesConfiguration, LifeStyles.Singleton); } else if (gzip) { container.RegisterCollection<IMessageInterceptor>(new[] { typeof (GZipMessageInterceptor) //gzip compression }); } else if (encryption) { - var aesConfiguration = new AesMessageInterceptorConfiguration(key); container.RegisterCollection<IMessageInterceptor>(new[] { typeof (AesMessageInterceptor) //encryption (AES-256-GCM) }); container.Register(() => aesConfiguration, LifeStyles.Singleton); }Also applies to: 89-98
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@Source/Samples/SampleShared/Injectors.cs` around lines 72 - 81, Hoist the duplicated AesMessageInterceptorConfiguration construction out of the conditional in Injectors setup so the same instance can be reused in both branches. In the code around the encryption/gzip registration logic, create the configuration once from the already computed key before the if/else and then pass that shared value into the container.Register call(s) and interceptor registration paths. This applies to both the combined GZipMessageInterceptor/AesMessageInterceptor branch and the other branch that also builds AesMessageInterceptorConfiguration.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@Source/Samples/SampleShared/Injectors.cs`:
- Around line 72-81: Hoist the duplicated AesMessageInterceptorConfiguration
construction out of the conditional in Injectors setup so the same instance can
be reused in both branches. In the code around the encryption/gzip registration
logic, create the configuration once from the already computed key before the
if/else and then pass that shared value into the container.Register call(s) and
interceptor registration paths. This applies to both the combined
GZipMessageInterceptor/AesMessageInterceptor branch and the other branch that
also builds AesMessageInterceptorConfiguration.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: eee407ff-925c-4d58-bc20-133387ffe88a
📒 Files selected for processing (44)
Source/Samples/DashBoard.Api/DashBoard.Api/DashBoard.Api.csprojSource/Samples/IntegrationTests/IntegrationTests.csprojSource/Samples/LiteDb/LiteDbConsumer/LiteDbConsumer.csprojSource/Samples/LiteDb/LiteDbConsumerAsync/LiteDbConsumerAsync.csprojSource/Samples/LiteDb/LiteDbConsumerLinq/LiteDbConsumerLinq.csprojSource/Samples/LiteDb/LiteDbProducer/LiteDbProducer.csprojSource/Samples/LiteDb/LiteDbProducerConsumer/LiteDbProducerConsumer.csprojSource/Samples/LiteDb/LiteDbProducerLinq/LiteDbProducerLinq.csprojSource/Samples/LiteDb/LiteDbScheduler/LiteDbScheduler.csprojSource/Samples/LiteDb/LiteDbSchedulerConsumer/LiteDbSchedulerConsumer.csprojSource/Samples/PostgreSQL/PostGreSQLConsumer/PostGreSQLConsumer.csprojSource/Samples/PostgreSQL/PostGreSQLConsumerAsync/PostGreSQLConsumerAsync.csprojSource/Samples/PostgreSQL/PostGreSQLConsumerLinq/PostGreSQLConsumerLinq.csprojSource/Samples/PostgreSQL/PostGreSQLScheduler/PostGreSQLScheduler.csprojSource/Samples/PostgreSQL/PostGreSQLSchedulerConsumer/PostGreSQLSchedulerConsumer.csprojSource/Samples/PostgreSQL/PostgreSQLConsumerInbox/PostgreSQLConsumerInbox.csprojSource/Samples/PostgreSQL/PostgreSQLProducer/PostgreSQLProducer.csprojSource/Samples/PostgreSQL/PostgreSQLProducerLinq/PostgreSQLProducerLinq.csprojSource/Samples/PostgreSQL/PostgreSQLProducerOutbox/PostgreSQLProducerOutbox.csprojSource/Samples/Redis/RedisConsumer/RedisConsumer.csprojSource/Samples/Redis/RedisConsumerAsync/RedisConsumerAsync.csprojSource/Samples/Redis/RedisConsumerLinq/RedisConsumerLinq.csprojSource/Samples/Redis/RedisProducer/RedisProducer.csprojSource/Samples/Redis/RedisProducerLinq/RedisProducerLinq.csprojSource/Samples/Redis/RedisScheduler/RedisScheduler.csprojSource/Samples/Redis/RedisSchedulerConsumer/RedisSchedulerConsumer.csprojSource/Samples/SQLServer/SQLServerConsumer/SQLServerConsumer.csprojSource/Samples/SQLServer/SQLServerConsumerAsync/SQLServerConsumerAsync.csprojSource/Samples/SQLServer/SQLServerConsumerInbox/SQLServerConsumerInbox.csprojSource/Samples/SQLServer/SQLServerConsumerLinq/SQLServerConsumerLinq.csprojSource/Samples/SQLServer/SQLServerProducer/SQLServerProducer.csprojSource/Samples/SQLServer/SQLServerProducerLinq/SQLServerProducerLinq.csprojSource/Samples/SQLServer/SQLServerProducerOutbox/SQLServerProducerOutbox.csprojSource/Samples/SQLServer/SQLServerScheduler/SQLServerScheduler.csprojSource/Samples/SQLServer/SQLServerSchedulerConsumer/SQLServerSchedulerConsumer.csprojSource/Samples/SQLite/SQLiteConsumer/SQLiteConsumer.csprojSource/Samples/SQLite/SQLiteConsumerAsync/SQLiteConsumerAsync.csprojSource/Samples/SQLite/SQLiteConsumerLinq/SQLiteConsumerLinq.csprojSource/Samples/SQLite/SQLiteProducer/SQLiteProducer.csprojSource/Samples/SQLite/SQLiteProducerLinq/SQLiteProducerLinq.csprojSource/Samples/SQLite/SQLiteSchedulerConsumer/SQLiteSchedulerConsumer.csprojSource/Samples/SQLite/SQliteScheduler/SQliteScheduler.csprojSource/Samples/SampleShared/Injectors.csSource/Samples/SampleShared/SampleShared.csproj



Updates the samples to the newly published 0.9.43 and switches the encryption sample from the deprecated 3DES interceptor to AES-256-GCM.
Changes
SampleShared/Injectors.cs—TripleDesMessageInterceptor→AesMessageInterceptor(AES-256-GCM; 32-byte key, no IV). Thedesparameter is renamedencryption.0.9.38→0.9.43.Microsoft.Extensions.*10.0.8→10.0.9OpenTelemetry/OpenTelemetry.Api/ exporters1.15.3→1.16.0StackExchange.Redis2.13.17→3.0.7Verification
All sample solutions build clean against 0.9.43: SampleShared, LiteDb, SQLServer, Redis, PostgreSQL, SQLite, DashBoard.Api, IntegrationTests.
Closes #2
Summary by CodeRabbit
New Features
Bug Fixes
Chores